🧩
🧠
🔁
💡
📚 III. 알고리즘과 프로그래밍

대단원 정리하기

마인드맵·플래시카드·학습 점검으로 알고리즘과 프로그래밍 단원의 핵심을 한 번에 복습해 봅시다!

한눈에 보는 마인드맵

각 가지를 눌러 세부 개념을 펼쳐 보세요.

🧩 알고리즘과 프로그래밍
🧩 1. 문제 추상화
핵심 요소만 뽑아내기
불필요한 부분 덜어 내기
복잡한 문제 단순화
예: 지하철 노선도
🔀 2. 알고리즘 표현
알고리즘 = 문제 해결 절차
순서도(기호로 표현)
의사코드(말로 표현)
3구조: 순차·선택·반복
📦 3. 순차적 데이터 저장
변수 = 값 담는 상자
대입(=)으로 값 저장
리스트 = 여러 값 묶기
순차 구조(위→아래)
⚖️ 4. 논리 연산
선택 구조(조건문)
비교 연산자(> < ==)
논리 연산자 AND·OR·NOT
참(True)·거짓(False)
🔁 5. 중첩 제어 구조
반복 구조(N번·조건)
중첩 = 반복 속 반복
횟수 = 바깥 × 안쪽
조건 반복(~할 때까지)
🧰 6. 함수와 디버깅
함수 = 명령 묶어 이름 붙이기
매개변수(입력)·반환값(출력)
재사용·수정 편리·구조화
디버깅 = 버그 찾아 고치기

핵심 용어 플래시카드

카드를 눌러 용어의 뜻을 확인하세요. 앞면(용어) ↔ 뒷면(설명)

🧩
추상화
탭하기
복잡한 문제에서 핵심만 뽑고 불필요한 부분을 덜어 내어 단순하게 만드는 것
🔀
알고리즘
탭하기
문제를 해결하기 위한 순서가 있는 절차. 누가 따라 해도 같은 결과가 나와야 함
📊
순서도
탭하기
알고리즘을 약속된 기호(타원·사각형·마름모)와 화살표로 그린 그림
📝
의사코드
탭하기
알고리즘을 일상 언어에 가깝게 적은 것. 프로그래밍 언어 문법을 몰라도 이해 가능
📦
변수
탭하기
값을 담아 두는 이름 붙은 상자. 대입(=)으로 새 값을 넣으면 내용이 바뀜
🗂️
리스트
탭하기
여러 값을 순서대로 묶어 한 이름으로 저장하는 것. 번호(인덱스)로 하나씩 꺼냄
➡️
순차 구조
탭하기
명령을 적힌 순서대로 위에서 아래로 하나씩 실행하는 가장 기본 구조
🔀
선택 구조
탭하기
조건의 참·거짓에 따라 실행할 명령이 갈라지는 구조(조건문, 만약 ~라면)
🔁
반복 구조
탭하기
같은 명령을 여러 번 실행. 횟수 반복(N번)과 조건 반복(~할 때까지)이 있음
⚖️
비교 연산자
탭하기
두 값을 견주어 참·거짓을 내는 기호. >, <, ==(같다), !=(다르다) 등
🔗
논리 연산자
탭하기
AND(모두 참), OR(하나라도 참), NOT(반대로). 여러 조건을 엮을 때 사용
🪆
중첩 반복
탭하기
반복 안에 또 반복이 들어간 것. 전체 횟수 = 바깥 횟수 × 안쪽 횟수
🧰
함수
탭하기
여러 명령을 묶어 이름을 붙인 것. 한 번 만들면 이름만 불러 재사용
🎯
매개변수·반환값
탭하기
매개변수=함수에 넣는 입력, 반환값=함수가 돌려주는 결과
🐞
디버깅
탭하기
프로그램의 버그(오류)를 찾아 고치는 일. 증상 관찰 → 원인 추적 → 수정 → 확인

3가지 제어 구조 한눈에

모든 프로그램은 이 세 가지 흐름을 조합해 만들어집니다.

➡️

순차 구조

위에서 아래로 차례대로 실행

언제정해진 순서대로 처리할 때
예시물 끓이기 → 면 넣기 → 스프 넣기
①번 명령
②번 명령
③번 명령
🔀

선택 구조

조건의 참·거짓에 따라 갈라짐

언제상황에 따라 다르게 처리할 때
예시비 오면 우산, 아니면 그냥 출발
만약 점수 ≥ 60 이면
  "합격" 출력
아니면
  "불합격" 출력
🔁

반복 구조

같은 일을 여러 번 되풀이

언제똑같은 작업을 반복할 때
예시★을 10번 그리기, 벽에 닿을 때까지
10번 반복:
  ★ 그리기

(또는) 벽에 닿을 때까지:
  앞으로 가기

순서도 기호 정리

알고리즘을 순서도로 그릴 때 쓰는 약속된 기호입니다.

시작/끝

타원

알고리즘의 시작과 끝

처리

직사각형

계산·대입 등 처리 과정

판단

마름모

조건 판단(참/거짓 분기)

입출력

평행사변형

자료 입력·결과 출력

화살표

실행 흐름의 방향

스스로 학습 점검

이해한 항목을 체크하세요. 아직 헷갈리는 항목은 복습을 눌러 해당 차시로 돌아가 다시 확인해요.

이해 진행도 0 / 12
복잡한 문제에서 핵심 요소만 뽑아내는 추상화를 설명할 수 있다. 🧩 복습
일상 속 추상화의 예(지하철 노선도 등)를 들 수 있다. 🧩 복습
알고리즘의 뜻을 알고, 순서도와 의사코드로 표현할 수 있다. 🔀 복습
순서도 기호(타원·사각형·마름모)의 의미를 구분할 수 있다. 🔀 복습
변수가 값을 담는 상자임을 알고, 대입의 의미를 설명할 수 있다. 📦 복습
여러 값을 순서대로 저장하는 리스트의 쓰임을 안다. 📦 복습
비교 연산자로 두 값을 견주어 참·거짓을 판단할 수 있다. ⚖️ 복습
AND·OR·NOT 논리 연산의 결과를 따질 수 있다. ⚖️ 복습
횟수 반복과 조건 반복의 차이를 설명할 수 있다. 🔁 복습
중첩 반복의 전체 횟수가 바깥×안쪽임을 계산할 수 있다. 🔁 복습
함수의 장점(재사용·수정·구조화)과 매개변수·반환값을 안다. 🧰 복습
디버깅의 과정(증상→원인→수정→확인)을 설명할 수 있다. 🧰 복습

시험에 꼭 나오는 포인트

1

추상화는 "정보를 모두 담는 것"이 아니라 핵심만 남기고 덜어 내는 것! (헷갈림 주의)

2

순서도에서 마름모 = 판단(조건). 참·거짓에 따라 길이 갈라집니다.

3

대입 기호 = 와 비교 기호 == 는 다릅니다. =는 저장, ==는 같은지 비교!

4

중첩 반복 전체 횟수는 바깥 × 안쪽. (예: 4 × 3 = 12)

5

조건 반복은 횟수를 몰라도 조건이 참이 될 때까지 스스로 멈춥니다.

6

함수가 "항상 무조건 빨라진다"는 틀린 설명! 장점은 재사용·수정·가독성입니다.

🚀 융합 프로젝트 · 생활 속 불편함, 프로그램으로 자동화

정보 + 실생활·수학 · 짝 프로그래밍

매일 반복되는 귀찮은 일을 알고리즘으로 설계하고 프로그램으로 자동화해요. 3단원에서 배운 변수·조건·반복·함수를 실제 문제에 써 보는 거예요. 둘이 짝을 지어 만들면 더 빠르고 정확해요!

🎯 목표

생활 문제 자동화

📦 산출물

작동 프로그램+순서도

⏱️ 차시

4~5차시

👥 모둠

2명(짝)

활동 단계

1

문제 발견

  • 매일 반복되거나 계산이 번거로운 일을 골라 입력과 출력을 정해요.

💬 길잡이: 무엇을 넣으면(입력) 무엇이 나와야(출력) 하나요?

2

알고리즘 설계

  • 순서도·의사코드로 단계를 그려요. 변수·조건(분기)·반복을 어디에 쓸지 표시해요.

💬 길잡이: 무엇을 변수에 저장하나요? 언제 분기하고 언제 반복하나요?

3

짝 프로그래밍

  • 엔트리·스크래치로 한 기능씩 만들고 바로 시험해요. 운전자(코딩)와 길잡이(점검)를 번갈아 맡아요.

💬 길잡이: 작은 기능부터 완성하며 자주 실행해 봤나요?

4

디버깅 & 발표

  • 이상한 입력도 넣어 보며 오류를 고치고, 완성작을 시연해요.

💬 길잡이: 예상 못 한 값(음수·0·아주 큰 수)에도 잘 동작하나요?

모둠 역할 (번갈아 맡기)

⌨️

운전자

직접 코딩

🧭

길잡이

점검·검색·조언

📝

기록

순서도·발표 정리

💰 예시 작품 살펴보기 — 용돈 계산기

입력
이번 달 수입·지출 금액
처리
잔액 = 수입 − 지출 합계, 잔액이 음수면 경고
출력
남은 용돈과 경고 메시지
잔액 ← 0
반복(지출 항목마다): 잔액 ← 잔액 − 지출
잔액 ← 잔액 + 수입
만약 잔액 < 0 이면: 출력 "용돈 초과! ⚠️"
아니면: 출력 "남은 용돈: " + 잔액

평가 루브릭

평가 기준⭐⭐⭐ 우수⭐⭐ 보통⭐ 노력
문제·설계입출력·순서도가 분명설계 일부 미흡설계가 불분명
알고리즘 요소변수·조건·반복 적절히 사용일부만 활용활용 미흡
구현·동작오류 없이 정확히 동작일부 오류 존재동작 어려움
협력(짝)역할 번갈아·적극 협력협력 보통한쪽에 치우침

💡 아이디어 예시

💰 용돈 계산기 · 📅 시험 D-day 알리미 · 🎲 랜덤 자리 뽑기 · ❓ 미니 퀴즈 게임 · 🧮 단위 변환기

🚀 한 걸음 더

반복되는 부분을 함수로 묶어 깔끔하게 · 리스트로 여러 값 저장 · 파이썬 같은 텍스트 언어로도 도전

이 단원과 연결된 직업

알고리즘으로 문제를 풀고 프로그램을 만드는 일과 이어지는 대표 직업 6가지예요. 어떤 일을 하고 무엇을 배우면 좋을지, 관심 가는 직업을 찾아보세요.

컴퓨터로 프로그래밍을 배우는 학생들사진: Vmakenas, CC BY-SA 4.0

💻 소프트웨어 개발자

우리가 쓰는 거의 모든 프로그램을 만드는 사람이에요. 풀고 싶은 문제를 알고리즘으로 설계해 코드로 옮긴 뒤, 오류를 찾아 고치며 더 편리한 앱·웹·서비스를 완성해요.

📌 이런 일을 해요
모바일·웹 서비스 · 업무 프로그램 · 클라우드 앱

파이썬협업디버깅

이 단원의 조건·반복·함수와 연결

게임 프로그래머가 다루는 게임 컨트롤러사진: Evan-Amos, Public domain

🎮 게임 프로그래머

게임 속 세계를 코드로 살아 움직이게 만드는 사람이에요. 캐릭터의 움직임·충돌·점수 규칙을 알고리즘으로 짜고, 수많은 테스트로 재미있고 공정하게 작동하도록 다듬어요.

📌 이런 일을 해요
캐릭터 동작 · 게임 물리 · 점수·레벨 시스템

C++물리 엔진수학

이 단원의 조건·반복·이벤트와 연결

알고리즘을 표현한 순서도순서도 예시: Ddefeat, CC0

⚙️ 알고리즘 엔지니어

같은 문제라도 '더 빠르고 더 효율적으로' 푸는 방법을 연구하는 사람이에요. 정렬·탐색 같은 알고리즘을 개선해, 거대한 데이터도 눈 깜짝할 사이에 처리되도록 만들어요.

📌 이런 일을 해요
검색 엔진 · 길찾기 · 추천·압축 알고리즘

자료구조수학분석

이 단원의 정렬·탐색·효율과 연결

여러 앱이 설치된 스마트폰 화면사진: Gannu03, CC BY-SA 4.0

📱 앱 개발자

스마트폰에서 돌아가는 앱을 전문으로 만드는 사람이에요. 작은 화면에서도 쓰기 편하도록 화면과 동작을 설계하고, 카메라·위치·알림 같은 기능을 프로그램으로 연결해요.

📌 이런 일을 해요
안드로이드·iOS 앱 · 게임 앱 · 생활 편의 앱

모바일UI프로그래밍

이 단원의 순차·조건·이벤트와 연결

코드 편집기에 작성된 웹사이트 HTML 코드사진: Microsoft, CC BY-SA 4.0

🌐 웹 개발자

인터넷에서 열리는 웹사이트와 서비스를 만드는 사람이에요. 눈에 보이는 화면(프론트엔드)과 보이지 않는 서버·데이터 처리(백엔드)를 코드로 짜서, 누구나 접속해 쓰게 만들어요.

📌 이런 일을 해요
쇼핑몰·포털 · 누리집 · 웹 게임·앱

HTML자바스크립트서버

이 단원의 변수·조건·반복과 연결

1947년 기록된 최초의 컴퓨터 버그(나방) 일지사진: U.S. Navy, Public domain

🐞 QA·테스트 엔지니어

프로그램이 세상에 나오기 전에 '버그'를 미리 찾아내는 사람이에요. 일부러 별별 상황을 만들어 오류를 잡고, 누구나 안심하고 쓰도록 품질을 책임져요. (사진은 1947년 진짜 벌레가 일으킨 최초의 '버그'!)

📌 이런 일을 해요
기능 테스트 · 버그 리포트 · 자동화 테스트

꼼꼼함논리자동화

이 단원의 디버깅·오류 찾기와 연결